前情提要:
基本上現在都過 AI要完成自推自己的專案應該不是問題,但應用更多的是公司甚至是企業的那種指令,這篇主要算是基礎知識筆記,在自學的過程中邊做邊紀錄,如果有錯或是不對的地方,還請各位前輩不吝指教~
git config --global user.name "你想要的名稱" => 決定之後專案別人看到你的名稱
git config --global user.email "你找到的你的 noreply email" => github 給的 email
git add "檔案名稱" 會將指定檔案目前的內容快照放入暫存區,準備成為下一個 Commit 的內容。執行後,git status 會將它顯示在 Changes to be committed。
如果 git add 後又繼續修改 README.md,就會同時出現:
暫存區裡:第一次 git add 的版本
工作目錄裡:後來又修改的版本
這時必須再次 git add README.md,後面的修改才會進入下一個 Commit。
建立後:
產生新的 Commit Hash。
新 Commit 會記住前一個 Commit 是誰。
main 移動到新 Commit。
HEAD 因為正在 main 上,也跟著移動。
前一版仍保留,不會被取代或刪除。
origin 可以自行命名。
通常使用 origin 作為主要遠端的慣用名稱。
它只是把名稱與 URL 寫入 .git\config。
github remote url 則要去 Repositories 找到對應建立的專案,點入後點選 code 下拉區塊可看到 Clone ,將網址複製即可
主要確認:
遠端名稱是否正確,例如 origin。
GitHub 帳號是否正確。
Repository 名稱是否正確。
Fetch 和 Push 網址是否指向預期專案。
=>
fetch:從這個網址取得遠端內容。
push:把本機 Commit 上傳到這個網址。
將本機 main 可追溯、而 GitHub 尚未擁有的 Commit 與必要內容全部上傳。
push:上傳本機 Commit。
origin:當初由 git remote add 設定的遠端名稱。
main:本機要推送的分支。
-u:建立本機 main 與遠端 origin/main 的關係。
結果Ex:1350966 (HEAD -> main, origin/main)
main:本機分支。
origin/main:本機記錄的遠端 main 最新狀態。
GitHub 網頁上實際顯示的分支名稱是 main,不會把它命名為 origin/main。
git branch -vv 可顯示 upstream,而通常第一次使用 -u 後,日後通常只需 git push即可,因為已經建立本機與遠端的關係
最後日常通常都是這樣用:
因此日常工作通常是:
git status
→ git pull
→ 修改檔案
→ git status
→ git diff
→ git add
→ git diff --staged
→ git commit -m
→ git push
git add = 準備下一個版本
git commit = 在本機正式建立版本
git push = 將本機版本上傳 GitHub
git pull = 將 GitHub 新版本整合回本機
git 運作:
工作目錄 --git add--> 暫存區
暫存區 --git commit--> 本機 Repository
本機 Commit --git push--> GitHub
GitHub 新 Commit --git pull--> 本機分支
如果目前在其他分支呢?這樣git pull更新的就會是你現在在的其他分支,有點聽君一席話如聽一席話的感覺,但應該就是要注意你現在在哪個分支
=> git branch --show-current # 顯示目前所在的本機分支
=> git branch -vv # 顯示各本機分支追蹤哪個遠端分支
注意的部分:
git pull origin main
=> 意思是「取得 origin/main,並整合到目前所在的本機分支」,不保證目前分支就是 main。所以執行 Pull 前,先用 git status 確認所在分支相當重要。
因此要用 GIT STATUS 確認目前 HEAD 在 main (On Branch main ),且main 是追蹤 origin/main (branch is up to date with 'origin/main')
1.git branch feature-readme 建立本機分支
2. git branch 查詢當前分支有哪些
3.git switch "分支名稱" 來切換分支
4.git log --oneline --decorate -5 查詢分支指向位置
5.git commit -m "新增 Branch 測試內容" 建立commit
6. git log --oneline --decorate --graph --all -5 查看分支位置變化
7. git switch main 再次切回某一個分支
8. git merge "分支名稱" 將某一個分支合進當前所在的分支中
9. git push =>上傳合併後的分支
10. git branch -d feature-readme 將已合併的分支刪除,這個分支必須是已經被整合到主要的分支,或是可捨棄不用情況
11. git branch -vv 最後確認最終分支狀態
1.git switch -c feature-remote-test 同時建立並切換分支 -c 是建立
=> 等於 git branch feature-remote-test + git switch feature-remote-test 這兩個指令一次執行
2.git push -u origin feature-remote-test 建立遠端分支與追蹤關係
=>建立本機 feature-remote-test 與 origin/feature-remote-test 的追蹤關係
-u 設定完成後,日後在此分支可直接執行 git push
git commit = 更新 Local 分支
git push = 將 Local Commit 同步到 Remote 分支